package com.budwk.app.sqfw.services.common;

import com.budwk.app.sqfw.models.Sqfw_formSummary_new;
import com.budwk.app.sqfw.vo.CheckDataForAdminVO;
import com.budwk.app.sqfw.vo.GenerateExcelUrlVO;
import com.budwk.app.sqfw.vo.GenerateWordAndPdfUrlVO;
import com.budwk.app.sqfw.vo.SqfwCustomForAdminCommonVO;
import com.budwk.app.sqfwDoc.bo.ExcelCreateConfig;
import com.budwk.starter.common.page.Pagination;
import org.nutz.dao.sql.Criteria;

import java.util.List;

/**
 * 定制服务公共服务（后台管理系统）
 */
public interface SqfwCustomForAdminCommonService {

    /**
     * 通用列表查询
     *
     * @param bean
     * @return Pagination
     */
    Pagination list(SqfwCustomForAdminCommonVO bean);

    /**
     * 通用删除
     *
     * @param id
     */
    int delete(String id);

    /**
     * 批量删除
     * @param ids
     * @return
     */
    int batchDelete(List<String> ids);

    /**
     * 通用修改
     *
     * @param sqfwFormsummaryNew
     */
    int update(Sqfw_formSummary_new sqfwFormsummaryNew);

    /**
     * 通用下载excel
     *
     * @param bean
     * @return 文件下载地址
     */
    List<GenerateExcelUrlVO> downloadExcel(List<ExcelCreateConfig> excelConfigList, SqfwCustomForAdminCommonVO bean);

    /**
     * 通用下载pdf
     *
     * @param bean
     * @return 文件下载地址
     */
    GenerateWordAndPdfUrlVO downloadPdf(List<ExcelCreateConfig> excelConfigList, SqfwCustomForAdminCommonVO bean);

    /**
     * 通用下载pdf
     *
     * @param bean
     * @return 文件下载地址
     */
    List<GenerateExcelUrlVO> downloadPdfList(List<ExcelCreateConfig> excelConfigList, SqfwCustomForAdminCommonVO bean);

    /**
     * 构建查询条件
     *
     * @param bean
     * @return
     */
    Criteria buildQueryCond(SqfwCustomForAdminCommonVO bean);

    /**
     * 获取下载文件列表及是否可下载数据检查
     *
     * @param bean
     * @return
     */
    List<CheckDataForAdminVO> checkDataInfoList(SqfwCustomForAdminCommonVO bean);

    /**
     * 重新生成pdf
     *
     * @param id
     * @return
     */
    void reGeneratePdf(String id);
}
